package com.zzz.sort.select;

import java.util.Arrays;
import java.util.Collections;

/**
 * 选择排序
 *
 * @author zizan
 */
public class SelectSort {
    public static void main(String[] args) {

        int[] array = new int[]{5, 1, 7, 4, 2, 7, 3, 1, 9};
        sort(array);
        System.out.println(Arrays.toString(array));

        // [I@404b9385   List元素是一个数组类型，根本没有把数组的值转成元素的值
        Collections.singletonList(array).forEach(System.out::println);
    }

    public static void sort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            int minIndex = i;
            //从当前 i 到 length 的范围 选出一个最小元素的那个下标，与第一个元素交换
            for (int j = i + 1; j < array.length; j++) {
                if (array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
            // 如果下标大于i的范围内找到了比i下标还小的元素，那么将这个最小值和下标为i的值进行交换
            if (minIndex != i) {
                int temp = array[minIndex];
                array[minIndex] = array[i];
                array[i] = temp;
            }
        }
    }
}
